home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / ptnews_admin.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  62 lines

  1. #
  2. # (C) Renaud Deraison
  3. #
  4.  
  5. if (description)
  6. {
  7.  script_id(11589);
  8.  script_bugtraq_id(7394);
  9.  script_version ("$Revision: 1.4 $");
  10.  
  11.  script_name(english:"PT News Unauthorized Administrative Access");
  12.  desc["english"] = "
  13. The remote host is using the PT News management system.
  14.  
  15. There is a flaw in this version which allows anyone to execute 
  16. arbitrary admnistrative PTnews command on this host (such as deleting
  17. news or editing a news) without having to know the administrator
  18. password.
  19.  
  20. An attacker may use this flaw to edit the content of this website
  21. or even to delete it completely.
  22.  
  23. Solution : Upgrade to PT News 1.7.8 or newer
  24. Risk factor : High";
  25.  
  26.  script_description(english:desc["english"]);
  27.  script_summary(english:"Determine if PTNews grants administrative access to everyone");
  28.  script_category(ACT_GATHER_INFO);
  29.  script_family(english:"CGI abuses", francais:"Abus de CGI");
  30.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison");
  31.  script_dependencie("find_service.nes", "http_version.nasl");
  32.  script_require_ports("Services/www", 80);
  33.  exit(0);
  34. }
  35.  
  36. include("http_func.inc");
  37. include("http_keepalive.inc");
  38.  
  39. port = get_http_port(default:80);
  40.  
  41. if(!get_port_state(port))exit(0);
  42. if(!can_host_php(port:port))exit(0);
  43.  
  44.  
  45. dirs = make_list("/ptnews", cgi_dirs());
  46.         
  47.  
  48. foreach d (dirs)
  49. {
  50.  rnd = rand();
  51.  
  52.  url = string(d, "/index.php?edit=nonexistant", rnd);
  53.  req = http_get(item:url, port:port);
  54.  buf = http_keepalive_send_recv(port:port, data:req);
  55.  if( buf == NULL ) exit(0);
  56.  if(egrep(pattern:"./nonexistant" + rnd + " .*/news.inc", string:buf))
  57.    {
  58.     security_hole(port);
  59.     exit(0);
  60.    }
  61. }
  62.